██████╗ ███████╗████████╗██╗██████╗ ███████╗██████╗ ██╗ █████╗
██╔══██╗██╔════╝╚══██╔══╝██║██╔══██╗██╔════╝██╔══██╗██║██╔══██╗
██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ██║ ██║██║███████║
██╔══██╗██╔══╝ ██║ ██║██╔═══╝ ██╔══╝ ██║ ██║██║██╔══██║
██║ ██║███████╗ ██║ ██║██║ ███████╗██████╔╝██║██║ ██║
╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═════╝ ╚═╝╚═╝ ╚═╝
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Rsync
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
In mwbginformatica mwbwrsync è un mwcasoftware per mwcqUnix che sincronizza mwcgfile e mwcwcartelle da una posizione all'altra minimizzando il trasferimento di mwdadati utilizzando quando possibile la mwdqcodifica delta.
Un'importante caratteristica di rsync che non trova riscontri in programmi/protocolli simili è che il mwdwmirroring avviene attraverso una sola trasmissione di dati per ogni direzione di comunicazione.
rsync può copiare o visualizzare il contenuto delle directory e copiare i file, utilizzando opzionalmente la mweqcompressione dei dati e la mwegricorsione. Per default, rsync effettua la copia attraverso una connessione mwewTCP sulla mwfaporta 873.
Contents
• Varianti
• Windows
• Note
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Descrizione
Algoritmo
L'mwgqalgoritmo usato da rsync per la trasmissione efficiente di dati (tipicamente, i contenuti di un file) a un altro computer che dispone di una versione precedente degli stessi dati è stato inventato dal programmatore australiano Andrew Tridgell, ed è descritto brevemente nel seguito.
Il ricevente spezza la sua copia del file in blocchi contigui di dimensione fissata mwha S {\displaystyle S} , e per ciascuno dei blocchi calcola due mwhqchecksum: la mwhgfunzione di hash mwhwMD5 e l'adler-32 (un mwiqchecksum ciclico). Entrambi i valori vengono inviati al mittente.
Il mittente calcola invece il checksum per mwiwtutti i possibili blocchi di lunghezza mwja S {\displaystyle S} della sua versione del file, anche sovrapposti. Il calcolo può essere svolto efficientemente grazie a una proprietà del checksum ciclico: sia mwjq c ( n ) {\displaystyle c(n)} il checksum ciclico del blocco che va dal byte mwjg n {\displaystyle n} al byte mwjw n + S − − 1 {\displaystyle n+S-1} , allora mwka c ( n + 1 ) {\displaystyle c(n+1)} dipende solo da mwkq c ( n ) {\displaystyle c(n)} e dal valore dei byte alle posizioni mwkg n {\displaystyle n} e mwkw n + S {\displaystyle n+S} , senza che sia necessario riesaminare i byte da mwla n + 1 {\displaystyle n+1} a mwlq n + S − − 1 {\displaystyle n+S-1} . Per mwlg S {\displaystyle S} grandi, il risparmio è notevole.
A questo punto il mittente compara i suoi checksum ciclici con quelli inviati dal ricevente, per verificare se ci sono delle corrispondenze. Se ci sono, viene calcolato e controllato anche il corrispondente hash MD5 (più costoso) per verificare se i blocchi sono effettivamente identici. A questo punto, il mittente invia al ricevente solo le parti del file per cui non sono stati trovati blocchi corrispondenti, insieme a istruzioni su come ricomporre i blocchi già presenti e le parti nuove in modo da ottenere una copia esatta del file originale. Se le due versioni del file hanno molte sezioni in comune, com'è spesso il caso quando si tratta di versioni diverse dello stesso file, rsync può effettuare la sincronizzazione trasmettendo molti meno dati rispetto alla dimensione dell'intero file.
Operando su un archivio compresso, modifiche in un file in esso contenuto possono equivalere a molti e diffusi cambiamenti nell'archivio compresso che lo contiene, rendendo necessaria la trasmissione di più dati del necessario. Per ovviare a questo problema, alcuni programmi di compressione offrono un'opzione (mwmq--rsyncable nel caso di gzip) che conserva la località delle variazioni anche nel'archivio compresso, migliorando l'efficienza di rsync su tali archivi.cite-ref-1[1]
Altre caratteristiche
L'algoritmo descritto sopra costituisce la base del funzionamento di rsync, ma l'applicazione fornisce varie altre funzioni utili per ottimizzare il trasferimento e semplificare la creazione di copie di mwoabackup. Fra le altre possiamo citare l'uso di algoritmi di compressione per ridurre ulteriormente la dimensione dei dati trasferiti e il supporto al protocollo mwoqssh per realizzare trasferimenti crittografati, quindi sicuri. In combinazione con utility UNIX standard quali mwogcron, rsync può essere usato per implementare facilmente backup centralizzati dei dati degli utenti su un server centrale, oppure un sistema di mwowmirroring di grandi quantità di dati.
Varianti
rdiff e rdiff-backup
Esiste un programma di utilità chiamato mwpwrdiff che usa l'algoritmo di rsync per generare un mwqafile delta contenente la differenza fra due file A e B, nel formato usato da rsync. Il file delta può poi essere mwqgapplicato in un secondo tempo al file A, trasformandolo nel file B. L'operazione svolta è analoga a quella dei comandi UNIX mwqwmwradiff e mwrqpatch, ma utilizzando un formato più efficiente per memorizzare le differenze.
A differenza di diff, la creazione del file delta richiede due fasi: dapprima viene generato un piccolo file mwrwfirma da A, quindi il file firma e B vengono usati per generare il file delta. Inoltre, rdiff funziona egregiamente con file binari, per cui invece non è possibile usare diff.
Appoggiandosi a rdiff, un altro programma di utilità chiamato mwsqrdiff-backup mantiene un mwsgbackup di un file o directory su un server remoto, memorizzando i file delta per ogni versione dei dati archiviati. Usando i delta memorizzati, si può poi ricostruire lo stato esatto dei dati in un qualunque momento fissato.
rsyncX e rsyncXCD
Una versione speciale di rsync per il mwtqfile system del mwtgmacOS, mwtwrsyncX, trasferisce anche le cosiddette mwuaresource fork (dati addizionali contenuti nei file del Mac), che non sono supportate da rsync (né da altri programmi UNIX). Con Mac OS 10.4, la mwuqApple ha inserito delle modifiche nella propria versione di rsync per fornire funzionalità analoghe.
mwuwrsyncXCD è una versione di rsyncX che consente di creare mwvapartizioni di mwvqboot.
Interfaccia grafica
rsync non possiede una propria interfaccia grafica, ma solo quella testuale. Esiste tuttavia il programma Grsync, distribuito sotto mwwalicenza GPL, che implementa una interfaccia grafica per rsync. Degno di nota è inoltre il progetto mwwqFlyBack che si prefigge il compito di portare il programma di backup Time Machine di Apple Mac OS X 10.5 Leopard in ambiente GNU/Linux proprio utilizzando rsync come applicazione di copia dati e gli hard link in un singolo file system.
Windows
Come per altre utilità UNIX, per eseguire rsync su mwxaMicrosoft Windows è necessario avere installato il pacchetto mwxqCygwin, che fornisce ai programmi una emulazione di ambiente UNIX su Windows. Sono disponibili alcuni pacchetti che includono rsync, cygwin e un programma di installazione, rendendo rsync accessibile agli utenti Windows. Fra gli altri:
• mwyacwRsync (mwyqLicenza MIT)
• mwywNasBackup (mwzaGNU General Public License), che fornisce anche un'interfaccia grafica
• mwzgDeltaCopy (mwzwGNU General Public License), che include un'interfaccia grafica e dei servizi di programmazione.
• mwaqUnison file Synchronzer (mwagGNU General Public License), che fornisce anche un'interfaccia grafica
Tuttavia, va notato che si possono verificare dei piccoli problemi usando rsync fra macchine con diversi sistemi operativi, in particolare per quanto riguarda le date di modifica dei file, l'accuratezza con cui vengono trasmesse alcune informazioni ausiliarie sui file (proprietario, diritti, ecc.) e le possibili ambiguità fra nomi di file in maiuscolo e minuscolo su Windows.
Note
cite-note-11. ↑ mwcgmwcwmwdaGNU Gzip, su mwdqgnu.org.
==Voci correlate== * [[Unison (file synchronizer)|unison]] * [[zsync]]
Collegamenti esterni
• (EN) Sito ufficiale, su rsync.samba.org.
• Rsync, su packages.debian.org.
• Repository sorgenti di Rsync, su github.com.
• citereffree-software-directory(EN) Rsync, su Free Software Directory.
• mwfq(EN) Tutorial: Using rsync, su everythinglinux.org.
• mwfwUsare rsync per il backup, su openskills.info.
• mwgq(EN) L'algoritmo di rsync, su rsync.samba.org.
• mwgw(EN) La versione di rsync per macOS, su archive.macosxlabs.org (archiviato dall'url originale il 13 luglio 2006).
• mwhq(EN) Unison, un altro tool di sincronizzazione bidirezionale, su cis.upenn.edu.
• mwhw(EN) Grsync, interfaccia grafica per rsync basata su GTK, su opbyte.it.
• mwiq(EN) flyback, programma grafico che usa hard link ed rsync per il backup di propri file, su code.google.com.